﻿using System;

namespace CRM.Database.Model
{
    public partial class TrainingsParticipants : ISetChangedUser, IGetKeyValue
    {
        #region Implementation of ISetChangedUser

        /// <summary>
        /// Установка пользователя, который сделал изменение
        /// </summary>
        /// <param name="userLogin">Логин пользователя</param>
        public void SetChangedUser(string userLogin)
        {
            if (string.IsNullOrEmpty(userLogin))
                throw new Exception("Логин пользователя не должен быть пустым");
            IdUser = userLogin;
        }

        #endregion

        #region Implementation of IGetKeyValue

        /// <summary>
        /// Получение ключего значения элемента
        /// </summary>
        /// <returns>Ключевое значение</returns>
        public int GetKeyValue()
        {
            return IdTrainingsParticipant;
        }

        #endregion

        /// <summary>
        /// заполняет null пробелами
        /// </summary>
        public void Fill()
        {
            if (string.IsNullOrEmpty(ParticipantName))
                ParticipantName = " ";
            if (string.IsNullOrEmpty(ParticipantPosition))
                ParticipantPosition = " ";
            if (IdTrainingsParticipantsStatus == 0)
                IdTrainingsParticipantsStatus = 2;
            return;
        }

        #region Extended properties

        /// <summary>
        /// Участник включен в группу и присутствует в списке для охраны
        /// </summary>
        public bool IsInclude
        {
            get
            {
                if (TrainingParticipantsStatuses == null) return false;
                if (TrainingParticipantsStatuses.IdTrainingParticipantsStatus > 2 &&
                    TrainingParticipantsStatuses.IdTrainingParticipantsStatus != 5)
                    return true;
                return false;
            }
        }

        /// <summary>
        /// название компании
        /// </summary>
        public string CompanyName
        {
            get
            {
                if (TrainingsRequests != null)
                    if (!string.IsNullOrEmpty(TrainingsRequests.CompanyExt))
                        return TrainingsRequests.CompanyExt;
                return " ";
            }
        }

        /// <summary>
        /// контактное лицо
        /// </summary>
        public string ContactName
        {
            get
            {
                if (TrainingsRequests != null)
                    if (!string.IsNullOrEmpty(TrainingsRequests.ContactNameExt))
                        return TrainingsRequests.ContactNameExt;
                return " ";
            }
        }

        /// <summary>
        /// контактный телефон
        /// </summary>
        public string ContactPhone
        {
            get
            {
                if (TrainingsRequests != null)
                    if (!string.IsNullOrEmpty(TrainingsRequests.ContactPhoneExt))
                        return TrainingsRequests.ContactPhoneExt;
                return " ";
            }
        }

        #endregion
    }
}